package org.example.config;

import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;


//开发一个拦截器HandlerInterceptor拦截器，用于拦截请求映射方法
public class LoginInterceptor implements HandlerInterceptor {


    //前置拦截：返回值=true，就允许继续往下执行请求映射方法
    //如果返回值等于false，就不再允许继续往下执行，而是直接返回响应（此时自己设置响应的内容）
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        //先获取session对象，这里不能是无参的，如果是无参的他就会自己创建一个
        HttpSession session = request.getSession(false);
        //此时验证是否登录
        if(session != null && session.getAttribute("user") != null){
            return true;
        }
        //设置返回对象的内容：比如Content-Type为json，body是统一格式
        response.setStatus(401);
        return false;
    }



}
